bugfix: Restore retail compatibility after retail behavior flags change#2727
bugfix: Restore retail compatibility after retail behavior flags change#2727Caball009 wants to merge 3 commits into
Conversation
|
| Filename | Overview |
|---|---|
| GeneralsMD/Code/GameEngine/Include/Common/TunnelTracker.h | Condition order standardized to `RETAIL_COMPATIBLE_CRC |
| GeneralsMD/Code/GameEngine/Source/Common/RTS/Player.cpp | Negated guard De Morgan–transformed to `!(RETAIL_COMPATIBLE_CRC |
| GeneralsMD/Code/GameEngine/Source/Common/RTS/TunnelTracker.cpp | Two condition sites standardized to `RETAIL_COMPATIBLE_CRC |
| GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/PoisonedBehavior.cpp | Negated guard De Morgan–transformed to `!(RETAIL_COMPATIBLE_CRC |
| GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Body/ActiveBody.cpp | Adds `RETAIL_COMPATIBLE_CRC |
| GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Collide/CrateCollide/CrateCollide.cpp | Default value of m_allowMultiPickup now also enabled when RETAIL_COMPATIBLE_CRC is set, restoring retail multi-crate pickup behavior. |
| GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Contain/TunnelContain.cpp | Condition order standardized — no semantic change. |
| GeneralsMD/Code/GameEngine/Source/GameLogic/Object/ObjectCreationList.cpp | Negated guard De Morgan–transformed to `!(RETAIL_COMPATIBLE_CRC |
| GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/StealthUpdate.cpp | Adds `RETAIL_COMPATIBLE_CRC |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[RETAIL_COMPATIBLE_CRC default=1] --> B{Retail behavior active?}
C[PRESERVE_* flags] --> B
B -->|RETAIL_COMPATIBLE_CRC=1 OR PRESERVE_*=1| D[Retail code paths enabled]
B -->|Both 0| E[Bug-fixed code paths enabled]
D --> F1[Tunnel heal stacking\nTunnelTracker / TunnelContain / Player]
D --> F2[Structure stealth during repair\nActiveBody + StealthUpdate]
D --> F3[Multi-crate pickup default on\nCrateCollide]
D --> F4[No XP from poison/OCL kills\nPoisonedBehavior / ObjectCreationList]
E --> G1[Single heal per frame]
E --> G2[Stealth suppressed during repair]
E --> G3[Multi-crate pickup default off]
E --> G4[XP awarded from poison/OCL kills]
Reviews (3): Last reviewed commit: "Changed macro order & macro expressions." | Re-trigger Greptile
Mauller
left a comment
There was a problem hiding this comment.
If we do add the overall preserve retail flag pattern, it might be better to split out the custom configuration into a cmake file for the pre configured flags that we are setting.
d48d2c9 to
9ec6877
Compare
|
Every use of a |
|
https://github.com/TheSuperHackers/GeneralsGameCode/actions/runs/26116319211/job/76806993700?pr=2730 Tested this merged with #2730. LGTM |
|
Replicated in Generals. Generals has one fewer change because this only exists in Zero Hour: |
#2691 Turned off some retail behavior which introduces mismatches. This PR aims to fix that.
TODO:
Generals has one fewer change because this only exists in Zero Hour:
RETAIL_COMPATIBLE_CRC || PRESERVE_STRUCTURE_STEALTH_DURING_REPAIRinStealthUpdate::allowedToStealth.